package com.tougutips.modules.user.info.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.tougutips.common.utils.StringUtil;
import com.tougutips.modules.user.info.entity.User;
import com.tougutips.modules.user.info.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

/**
 * 用户基本信息接口
 */
@Slf4j
@RestController
@RequestMapping("/userinfo")
public class UserInfoController {
    @Autowired
    private UserService userService;

    /**
     * 获取用户列表,后台管理员使用
     *
     * @return
     */
    @GetMapping("/list")
    public AjaxResult list() {
        List<User> list = userService.list();
        log.info("用户列表查询成功:{}",list);
        return AjaxResult.success(list);
    }

    /**
     * 根据Id获取指定用户
     *
     * @return
     */
    @GetMapping("/{id}")
    public AjaxResult getById(@PathVariable Long id) {
        User user = userService.getById(id);
        if(StringUtil.isEmpty(user)){
                    return AjaxResult.error("没有找到此用户.");
        }
        log.info("指定用户获取成功:{}",user);
        return AjaxResult.success(user);
    }

    /**
     * 根据账号获取指定用户
     *
     * @return
     */
    @GetMapping("/phone/{account}")
    public AjaxResult getByAccount(@PathVariable String account) {
        AjaxResult rest = userService.getByAccount(account);
        log.info("指定用户获取成功:{}",rest);
        return rest;
    }
    /**
     * 新增用户,注册
     *
     * @return
     */
    @PostMapping
    public AjaxResult add(String account) {
        AjaxResult rest = userService.save(account);
        log.info("指定用户获取成功:{}",rest);
        return rest;
    }

    /**
     * 用户修改信息,前台用户使用
     *
     * @param user 用户实体
     * @return
     */
    @PutMapping("/{id}")
    public AjaxResult update(@RequestBody User user) {
        boolean i = userService.save(user);
        if (i) {
            log.info("用户修改成功");
            return AjaxResult.success("update is ok");
        }
        log.info("用户修改失败");
        return AjaxResult.success("update is ko");
    }

}
